const isDev = process.env.NODE_ENV === 'development' // 是否是开发模式

module.exports = {
  // 执行顺序由右往左，所以先处理ts,再处理jsx,最后再通过babel转换为低版本语法
  presets: [
    [
      "@babel/preset-env",
      {
        // 设置兼容目标浏览器版本，这里可以不写，babel-loader会自动找.browserslistrc
        // "targets": {
        // "chrome": 35,
        // "ie": 9
        //  }
        useBuiltIns: "usage", // 根据配置的浏览器兼容，以及代码中使用到的api进行引入polyfill按需添加
        corejs: 3, // 配置使用core-js使用的版本
      },
    ],
    "@babel/preset-react",
    "@babel/preset-typescript",
  ],
  // 识别装饰器语法
  plugins: [
    ["@babel/plugin-proposal-decorators", { legacy: true }],
    // ["@babel/plugin-proposal-class-properties", { loose: true }],
    isDev && require.resolve('react-refresh/babel'), // 如果是开发模式，就启动react热更新插件
  ].filter(Boolean) // 过滤空值
};
